#pragma once

#include <gofcl_gpio_r.h>

typedef struct {
	u8_s MD8 : 2;
	u8_s CTL8 : 2;
	u8_s MD9 : 2;
	u8_s CTL9 : 2;
	u8_s MD10 : 2;
	u8_s CTL10 : 2;
	u8_s MD11 : 2;
	u8_s CTL11 : 2;
	u8_s MD12 : 2;
	u8_s CTL12 : 2;
	u8_s MD13 : 2;
	u8_s CTL13 : 2;
	u8_s MD14 : 2;
	u8_s CTL14 : 2;
	u8_s MD15 : 2;
	u8_s CTL15 : 2;
} gpio_ctl1_s;

_Static_assert(sizeof(gpio_ctl1_s) == 4, "Struct gpio_ctl1_s defined error!");

static inline void gpio_wreg_ctl1_s(gpio_qe gpio_q, gpio_ctl1_s ctl1) {
	union {
		gpio_ctl1_s c;
		u32_s u;
	} cu = {
		.c = ctl1,
	};
	gpio_wreg(gpio_q, GPIO_CTL1_R, cu.u);
}
